﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Data.Objects;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ingesup_ERP.Models;

namespace ingesup_ERP.Controllers
{
    public class Default1Controller : Controller
    {
        private ERPInsiaEntities1 db = new ERPInsiaEntities1();

        //
        // GET: /Default1/

        public ViewResult Index(int start = 0, int itemsPerPage = 20, string orderBy = "LOGINPERS", bool desc = false)
        {
            ViewBag.Count = db.PROFESSEUR.Count();
            ViewBag.Start = start;
            ViewBag.ItemsPerPage = itemsPerPage;
            ViewBag.OrderBy = orderBy;
            ViewBag.Desc = desc;

            return View();
        }

        //
        // GET: /Default1/GridData/?start=0&itemsPerPage=20&orderBy=LOGINPERS&desc=true

        public ActionResult GridData(int start = 0, int itemsPerPage = 20, string orderBy = "LOGINPERS", bool desc = false)
        {
            Response.AppendHeader("X-Total-Row-Count", db.PROFESSEUR.Count().ToString());
            ObjectQuery<PROFESSEUR> professeur = db.PROFESSEUR;
            professeur = professeur.OrderBy("it." + orderBy + (desc ? " desc" : ""));

            return PartialView(professeur.Skip(start).Take(itemsPerPage));
        }

        //
        // GET: /Default5/RowData/5

        public ActionResult RowData(string id)
        {
            PROFESSEUR professeur = db.PROFESSEUR.Single(p => p.LOGINPERS == id);
            return PartialView("GridData", new PROFESSEUR[] { professeur });
        }

        //
        // GET: /Default1/Create

        public ActionResult Create()
        {
            return PartialView("Edit");
        }

        //
        // POST: /Default1/Create

        [HttpPost]
        public ActionResult Create(PROFESSEUR professeur)
        {
            if (ModelState.IsValid)
            {
                db.PROFESSEUR.AddObject(professeur);
                db.SaveChanges();
                return PartialView("GridData", new PROFESSEUR[] { professeur });
            }

            return PartialView("Edit", professeur);
        }

        //
        // GET: /Default1/Edit/5

        public ActionResult Edit(string id)
        {
            PROFESSEUR professeur = db.PROFESSEUR.Single(p => p.LOGINPERS == id);
            return PartialView(professeur);
        }

        //
        // POST: /Default1/Edit/5

        [HttpPost]
        public ActionResult Edit(PROFESSEUR professeur)
        {
            if (ModelState.IsValid)
            {
                db.PROFESSEUR.Attach(professeur);
                db.ObjectStateManager.ChangeObjectState(professeur, EntityState.Modified);
                db.SaveChanges();
                return PartialView("GridData", new PROFESSEUR[] { professeur });
            }

            return PartialView(professeur);
        }

        //
        // POST: /Default1/Delete/5

        [HttpPost]
        public void Delete(string id)
        {
            PROFESSEUR professeur = db.PROFESSEUR.Single(p => p.LOGINPERS == id);
            db.PROFESSEUR.DeleteObject(professeur);
            db.SaveChanges();
        }

        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}
